/**
 * @file: Juego.h
 * @author: Hernan Payrumani
 * @date: JUL-11-2009
 * @desc: Esta interface es la que define las funciones para simular el juego.
 */
#ifndef _Juego_h_ 
#define _Juego_h_

/**
 * La clase Juego es la encargada de realizar el simulacro del juego
 */
class Juego
{
public:
    /**
     * Contructor de la Clase Juego
	 * estos parametros son inyectados desde la clase principal
     * @param[in] unsigned int numJugadorReal.
     * @param[in] unsigned int numJugadorVirtual.
     */
    Juego(unsigned int numJugadorReal, unsigned int numJugadorVirtual);

    /**
     * Devuelve el numero de jugadores reales.
     * @return 
     */
    unsigned int getNumJugadorReal();

    /**
     * Cambia el numero de jugadores reales.
     * @param[in] unsigned int numJugadorReal.
     */
    void setNumJugadorReal(unsigned int numJugadorReal);

    /**
     * Devuelve el numero de jugadores virtuales
     * @return 
     */
    unsigned int getNumJugadorVirtual();

    /**
     * Cambia el numero de jugadores virtuales
     * @param[in] unsigned int numJugadorVirtual.
     */
    void setNumJugadorVirtual(unsigned int numJugadorVirtual);

    /**
     * Inicia el juego
     */
    void iniciar();

private:
    /**
     * Numero de jugadores reales.
     */
    unsigned int numJugadorReal;

    /**
     * Numero de jugadores virtuales.
     */
    unsigned int numJugadorVirtual;
};
#endif
